cmake_minimum_required(VERSION 3.23)


message( STATUS )
message( STATUS "............................................................................." )
message( STATUS ".. BUILDING EXAMPLES" )
message( STATUS "............................................................................." )
if(CImg_FOUND)
  message( STATUS "..   - CIMG available: BUILDING CImg-binding examples" )
else()
  message( STATUS "..   - CIMG NOT available: SKIPPING CImg-binding examples" )
endif()
if(OpenCV_FOUND)
  message( STATUS "..   - OpenCV available: BUILDING OpenCV-binding examples" )
else()
  message( STATUS "..   - OpenCV NOT available: SKIPPING OpenCV-binding examples" )
endif()
if (JKQtPlotter_BUILD_WITH_PRECOMPILED_HEADERS)
  message( STATUS "..   - Precompiled Header:  ON" )
else()
  message( STATUS "..   - Precompiled Header:  OFF")
endif()

message( STATUS "............................................................................." )



# examples for libexampletools
message( STATUS ".. BUILDING EXAMPLE TOOLS LIB:" )
add_subdirectory(libexampletools)

if (JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER)
    # examples for JKQtFastPlotter
    message( STATUS ".. BUILDING EXAMPLES FOR JKQTFASTPLOTTER:" )
    add_subdirectory(jkqtfastplotter_test)
endif()

if (JKQtPlotter_BUILD_LIB_JKQTMATHTEXT)
    # examples specific to JKQtMathText
    message( STATUS ".. BUILDING EXAMPLES FOR JKQTMATHTEXT:" )
    add_subdirectory(jkqtmathtext_simpletest)
    add_subdirectory(jkqtmathtext_test)
endif()

if (JKQtPlotter_BUILD_LIB_JKQTPLOTTER)
    # examples for JKQtPlotter
    message( STATUS ".. BUILDING EXAMPLES FOR JKQTPLOTTER:" )
    # needs to be first for Precompiled Headers to work
    add_subdirectory(simpletest)

    add_subdirectory(jkqtplot_test)
    add_subdirectory(advplotstyling)
    add_subdirectory(barchart)
    add_subdirectory(boxplot)
    add_subdirectory(barchart_errorbars)
    add_subdirectory(barchart_functorfill)
    add_subdirectory(barchart_twocolor)
    add_subdirectory(barchart_customdrawfunctor)
    add_subdirectory(contourplot)
    add_subdirectory(datastore)
    add_subdirectory(datastore_groupedstat)
    add_subdirectory(datastore_iterators)
    add_subdirectory(datastore_regression)
    add_subdirectory(datastore_statistics)
    add_subdirectory(datastore_statistics_2d)
    add_subdirectory(dateaxes)
    add_subdirectory(distributionplot)
    add_subdirectory(errorbarstyles)
    add_subdirectory(evalcurve)
    add_subdirectory(filledgraphs)
    add_subdirectory(filledgraphs_errors)
    add_subdirectory(financialgraphs)
    add_subdirectory(functionplot)
    add_subdirectory(geo_arrows)
    add_subdirectory(geo_bezier)
    add_subdirectory(geo_simple)
    add_subdirectory(geo_coordinateaxis0)
    add_subdirectory(geometric)
    add_subdirectory(graphlabels)
    add_subdirectory(imageplot)
    add_subdirectory(imageplot_cimg)
    add_subdirectory(imageplot_modifier)
    add_subdirectory(imageplot_nodatastore)
    add_subdirectory(imageplot_opencv)
    add_subdirectory(imageplot_userpal)
    add_subdirectory(impulsesplot)
    add_subdirectory(logaxes)
    add_subdirectory(mandelbrot)
    add_subdirectory(multiplot)
    add_subdirectory(multithreaded)
    add_subdirectory(parametriccurve)
    add_subdirectory(paramscatterplot)
    add_subdirectory(paramscatterplot_image)
    add_subdirectory(paramscatterplot_customsymbol)
    add_subdirectory(parsedfunctionplot)
    add_subdirectory(paramvectorfield)
    add_subdirectory(rgbimageplot)
    add_subdirectory(rgbimageplot_cimg)
    add_subdirectory(rgbimageplot_opencv)
    add_subdirectory(rgbimageplot_qt)
    add_subdirectory(scatter)
    add_subdirectory(scatter_customsymbol)
    add_subdirectory(second_axis)
    add_subdirectory(speed)
    add_subdirectory(stackedbars)
    add_subdirectory(stepplots)
    add_subdirectory(styledboxplot)
    add_subdirectory(styling)
    add_subdirectory(symbols_and_errors)
    add_subdirectory(symbols_and_styles)
    add_subdirectory(ui)
    add_subdirectory(ui_bind_scrollbar)
    add_subdirectory(user_interaction)
    add_subdirectory(vectorfield)
    add_subdirectory(violinplot)
    add_subdirectory(wiggleplots)
endif()
